package com.xhui.vimarket.common.utils.obj;

import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;

/**
 * <p>
 * Standard {@link Converter} implementation that converts an incoming String
 * into a <code>java.lang.String</code> object, optionally using a default
 * value or throwing a {@link ConversionException} if a conversion error occurs.
 * </p>
 * 
 * @author Craig R. McClanahan
 * @version $Revision: 1.5 $ $Date: 2004/02/28 13:18:34 $
 * @since 1.3
 */

public final class StringConvert implements Converter {
    
    // --------------------------------------------------------- Public Methods
    
    /**
     * Convert the specified input object into an output object of the specified
     * type.
     * 
     * @param type
     *            Data type to which this value should be converted
     * @param value
     *            The input value to be converted
     * 
     *                if conversion cannot be performed successfully
     * @return an output object
     */
    public Object convert(final Class type, final Object value) {
        
        if (value == null) {
            return (null);
        } else if (value instanceof Date) {
            final Date date = (Date) value;
            final SimpleDateFormat theFormat = new SimpleDateFormat(
                "yyyy-MM-dd");
            return theFormat.format(date);
        } else {
            return (value.toString());
        }
        
    }
    
}
